package com.ssd.service;



import com.ssd.entity.OrderCollectEntity;
import com.ssd.viewmodel.BarCharCollect;
import com.ssd.viewmodel.Pager;
import com.ssd.vo.SkuSeniority;

import java.time.LocalDate;
import java.util.List;


public interface ReportService {


    /**
     * 获取合作商分账汇总信息
     * @param pageIndex
     * @param pageSize
     * @param name
     * @param start
     * @param end
     * @return
     */
    Pager<OrderCollectEntity> getPartnerCollect(Long pageIndex, Long pageSize, String name, LocalDate start , LocalDate end );


    /**
     * 获取合作商前12条点位分账数据
     * @param partnerId
     * @return
     */
    List<OrderCollectEntity> getTop12(Integer partnerId);


    /**
     * 合作商点位分账搜索
     * @param partnerId
     * @param nodeName
     * @param start
     * @param end
     * @return
     */
    Pager<OrderCollectEntity> search(Long pageIndex,Long pageSize,Integer partnerId, String nodeName, LocalDate start, LocalDate end);


    /**
     * 分账数据列表
     * @param partnerId
     * @param nodeName
     * @param start
     * @param end
     * @return
     */
    List<OrderCollectEntity> getList( Integer partnerId, String nodeName, LocalDate start, LocalDate end );


    /**
     * 获取一定日期内合作商收益
     * @param partnerId
     * @param start
     * @param end
     * @return
     */
    BarCharCollect getCollect(Integer partnerId, LocalDate start , LocalDate end );


    /**
     * 获取一定日期内的销售额趋势
     * @param start
     * @param end
     * @return
     */
    BarCharCollect getAmountCollect(LocalDate start ,LocalDate end);


    /**
     * 获取区域销量统计
     * @param start
     * @param end
     * @return
     */
    BarCharCollect getCollectByRegion(LocalDate start ,LocalDate end);

    /**
     * 指定时间段的销售总额
     * @param start
     * @param end
     * @return
     */
    Integer getTotalAmount(LocalDate start, LocalDate end);

    /**
     * 指定时间段的订单数量
     * @param start
     * @param end
     * @return
     */
    Integer getOrderCount(LocalDate start, LocalDate end);

    /**
     * 查询商品销售排行
     * @param start
     * @param end
     * @return
     */
    public List<SkuSeniority> getSkuSeniority(LocalDate start, LocalDate end);

    /**
     * 指定时间段的订单数量
     * @param start
     * @param end
     * @return
     */
    public BarCharCollect getOrderCollect(LocalDate start, LocalDate end);

}
